package com.ruoyi.crm.service;

import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.crm.domain.CrmOrder;
import com.ruoyi.crm.domain.dto.CrmOrderDTO;
import com.taobao.api.ApiException;

/**
 * 商机Service接口
 *
 * @author yanwenliang
 * @date 2024-10-23
 */
public interface ICrmOrderService extends IService<CrmOrder> {
    /**
     * 查询商机
     *
     * @param orderId 商机主键
     * @return 商机
     */
    public CrmOrder selectCrmOrderByOrderId(String orderId);

    /**
     * 查询商机列表
     *
     * @param crmOrder 商机
     * @return 商机集合
     */
    public List<CrmOrder> selectCrmOrderList(CrmOrder crmOrder);

    /**
     * 新增商机
     *
     * @param crmOrder 商机
     * @return 结果
     */
    public int insertCrmOrder(CrmOrder crmOrder) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException;

    /**
     * 修改商机
     *
     * @param crmOrder 商机
     * @return 结果
     */
    public int updateCrmOrder(CrmOrder crmOrder);

    /**
     * 修改商机
     *
     * @param crmOrder 商机
     * @return 结果
     */
    public int updateCrmOrderInfo(CrmOrder crmOrder);

    /**
     * 批量删除商机
     *
     * @param orderIds 需要删除的商机主键集合
     * @return 结果
     */
    public int deleteCrmOrderByOrderIds(String[] orderIds);

    /**
     * 删除商机信息
     *
     * @param orderId 商机主键
     * @return 结果
     */
    public int deleteCrmOrderByOrderId(String orderId);

    /**
     * 获取订单信息
     * @param crmCustomerId
     * @return
     */
    public List<CrmOrderDTO> getCrmOrderDTO(String crmCustomerId);

    /**
     * 获取订单信息
     * @param crmOrder
     * @return
     */
    CrmOrder getOrderOne(CrmOrder crmOrder);

    Boolean setRenewal(CrmOrder crmOrder);
}
